This invention relates to data storage in a computer system environment. More specifically, the invention relates to block layout and block allocation in a file system to support write transactions.
A data storage block or a storage block, herein after referred to as a block, refers to specific areas of address space on a storage device. For example, one data block may be a collection of sectors or bytes in an area of disk space. Blocks are manipulated as units. Large block allocations allow a large amount of data to be retrieved in a single I/O transaction. In one embodiment, a block is a fixed-size unit of data that is transferred together. A file system is a collection of file data maintained by an implementation that store, organize, and maintain file data in a file and/or directory hierarchy. File systems employ techniques to write data to storage media using block allocation techniques. Typically, a storage system provides access to information that is stored on one or more storage devices connected to the storage system. Access to the information is possible by organizing the storage devices into volumes, which logically organize the information stored on the storage devices.
The storage system may be further configured to operate according to a client/server model of information delivery to thereby allow many clients to access data containers stored on the system. In this model, the client may employ an application, such as a database application, executing on a computer that connects to the storage system over a computer network. Each client may request the services of the storage system by issuing file-based protocol messages to the system over the network. A plurality of storage systems may be interconnected to provide a storage system environment configured to service many clients. Each storage system may be configured to service one or more volumes, wherein each volume stores one or more data containers.